package main

import (
	"fmt"
	"math/rand"
	"time"
)

func main() {
	// 我们为了生产一个随机数，还需要为rand设置一个种子
	// time.Now().Unix()	: 返回一个从1970:01:01	的0时0分0秒到现在的秒数
	// rand.Seed(time.Now().Unix())

	// 如何随机的生产1-100的整数
	// n := rand.Intn(100) + 1 // [0, 100)
	// fmt.Println(n)

	// 随机生成1-100的一个数，直到生成了99这个数，看看你一共用了几次
	// 分析思路:
	// 编写一个无限循环的控制，然后不停的随机生成数，当生成了99时，就退出这个无限循环==》break

	var count int = 0
	// rand.Seed(time.Now().Unix()) // 放在循环里面和外面 差别巨大
	rand.Seed(time.Now().UnixNano()) // 纳秒级别

	for {
		n := rand.Intn(100) + 1

		count++

		if n == 99 {
			fmt.Printf("第%v次才匹配成功", count)
			break // 跳出无限循环
		}

	}

	// 这里演示一下指定标签的形式来使用	break

	for i := 0; i < 4; i++ {
	label1: // 设置一个标签
		for j := 0; j < 10; j++ {
			if j == 2 {
				// break // break	默认会跳出最近的for循环
				break label1
			}
			fmt.Println("j=", j)
		}
	}

label2:
	for i := 0; i < 4; i++ {
		// label1: // 设置一个标签
		for j := 0; j < 10; j++ {
			if j == 2 {
				// break // break	默认会跳出最近的for循环
				// break label1
				break label2
			}
			fmt.Println("j=", j)
		}
	}
}
